O analisador léxico do sistema quebra o texto em unidades,
ou seja, palavras ou símbolos que contenham algum sentido são classificados
como \emph{tokens}, marcando-os com a sua função morfológica.

A primeira fase da análise léxica é uso do \emph{tokenizer} e o
etiquetador. Assim foi utilizado o \emph{TreeTagger}, que retorna os
\emph{tokens} com as suas respectivas \emph{tags}. Por exemplo,
\emph{``jogador''} será  classificado como \textbf{``NOM''} (as outras
\emph{tags} são apresentadas no Anexo A). O \emph{TreeTagger} contém
um treinamento para língua portuguesa realizado por Pablo Gamallo da
Universidade de Compostela na Espanha. 

\begin{figure}[h]
\centering
\includegraphics[width=0.75\textwidth]{imagens/implementacao/funcionamento_etiquetador.png}
\caption{Etiquetador Gramatical}
\end{figure}

Assim, temos a saída conforme a figura a baixo:

\newpage
%\begin{figure}[htp]
\begin{figure}[!h]
\centering
\includegraphics[width=0.5\textwidth]{imagens/implementacao/funcionamento_treetagger.png}
\caption{Saída do TreeTagger}
\end{figure}

Com o resulado da saída do \emph{TreeTagger}, foi produzida na linguagem Python
uma lista com as tuplas (\emph{token},\emph{tag}) para cada \emph{token} retirado do texto.

O próximo passo da análise léxica é o refinamento dos \emph{tokens} usando um
\emph{Gazetteer} ou listas de palavras de um determinado conceito. No projeto,
foram usadas três listas: lista de equipes, lista de cidades e lista de
estádios. A maior dificuldade encontrada para o uso destas listas foi a
existência de equipes e cidades com o mesmo nome. Para contornar esse problema
foi nessária uma classificação especial.

Para o tema, foi necessário identificar as equipes de futebol, os estádios e as
cidades onde os jogos ocorreram. Assim, foram criadas as seguintes
\emph{tags}:

%\def\tablename{Tabela}%
\begin{table}[h]
\centering
\begin{tabular}{|c|c|}
\hline
\textbf{\emph{Tag}}  & \textbf{Significado}\\
\hline
EQUIPE & Equipe de Futebol\\
\hline
CIDADE & Cidade\\
\hline
ESTADIO & Estádio\\
\hline
EQUIPE-CIDADE & Equipe ou Cidade\\
\hline
DATA & Data\\
\hline
\end{tabular}
\caption{\emph{Tags} utilizadas para fazer o refinamento}
\end{table}

A \emph{tag} EQUIPE-CIDADE foi feita para as equipes de
futebol que contêm os mesmos nomes que suas respectivas cidades; por exemplo,
São Paulo e Barueri.

Assim, os conteúdos dessas listas são considerados palavras reservadas e o
refinamento lexical marca esses \emph{tokens} com a sua respectiva \emph{tag}.

Para fazer tal refinamento foi preciso o uso de uma estrutura de dados chamada
``pilha''. A pilha é usada para o caso de palavras reservadas que são compostas.
No momento que um \emph{token} é achado e o seu início combina com alguma palavra
reservada, o \emph{token} é empilhado e essa é operação é feita conforme os
tokens são achados. Ao mesmo tempo,
um \emph{buffer} é preenchido, tornando-se a base de comparação com a
palavra reservada.

Caso o \emph{buffer} seja exatamente igual à palavra reservada, essa palavra é
etiquetada com a \emph{tag} correspondente, esvaziando-se e a pilha e o
\emph{buffer}. Caso não seja mais parte da palavra reservada, o \emph{buffer} é
esvaziado e ocorre o desempilhamento da pilha que devolve a lista de saída os
\emph{tokens} com as \emph{tags} que foram etiquetadas inicialmente pelo
\emph{TreeTagger}.

\begin{figure}[!h]
\centering
\includegraphics[width=0.75\textwidth]{imagens/implementacao/funcionamento_lexico.png}
\caption{Refinamento Lexical}
\end{figure}